4D Chart v13

Crear gráficos a partir de registros (ejemplos)

Inicio

 
4D Chart v13
Crear gráficos a partir de registros (ejemplos)

Crear gráficos a partir de registros (ejemplos)  


 

 

Esta sección ofrece ejemplos para la creación de gráficos dos y tres dimensiones usando las funciones CT Chart selection y CT Chart data.

Para obtener información acerca de la creación de gráficos de dos y tres dimensiones utilizando arrays, consulte la sección Crear gráficos a partir de arrays (ejemplos) .

En cada ejemplo, encontrará:

  • Una descripción de la situación utilizada como ejemplo,
  • La estructura de la base de datos del ejemplo,
  • Un gráfico creado en su totalidad por programación, utilizando los datos del ejemplo,
  • El código utilizado para crear el gráfico de ejemplo.

Imagine que usted es dueño de una empresa de software que tiene clientes en diferentes sectores: gobierno, educación, minoristas. Su base de datos hace seguimiento a los clientes y a las ventas.

Su base utiliza la siguiente tabla para almacenar la información:

Con 4D Chart, usted hace el siguiente gráfico de sectores que ilustra el porcentaje de ventas cada sector.

El siguientes es el código del método GRAPH PROFILE, que se utilizó para crear el gráfico de ejemplo.

  `Método: GRAPH PROFILE
  `Categorías: Tipo de cliente
  `Valores: Número de unidades compradas
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Area;$Chart;$Title;$Locate)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 
  `Generar la selección de registros a graficar
 ALL RECORDS([Market Data])
 
  `Array de campos para datos de las series
 ARRAY LONGINT($aFields;1)
 $aFields{1}:=Field(->[Market Data]NumberOfUnits)
 
  `Ocultar elementos de interfaz
 CT SET DISPLAY(Area;1;0) `Ocultar menús
 CT SET DISPLAY(Area;2;0) `Ocultar herramientas gráficas
 CT SET DISPLAY(Area;3;0) `Ocultar herramientas objetos
 CT SET DISPLAY(Area;6;0) `Ocultar barras de desplazamiento
 CT SET DISPLAY(Area;9;0) `Ocultar reglas
 
  `Crear un gráfico en sectores
 $Chart:=CT Chart selection(Area;6;1;1;Table(->[Market Data]);2;$aFields)
 
  `Dividir la pieza #3 por 10 grados
 CT EXPLODE PIE(Area;$Chart;2;10)
 
  `Definir la posición de la leyenda (abajo, posición horizontal)
 CT SET LEGEND ATTRIBUTES(Area;$Chart;1;0;0;0;8;0;0)
 
  `Añadir un título en la esquina superior izquierda
 $Title:=CT Draw text(Area;1;1;210;3;"Distribución cliente por sector")
 
  `Dar formato al título (Palatino, 14 puntos, Negrita, Centrado, Negro)
 $Color:=CT Index to color(16)
 $Font:=CT Font number("Palatino")
 CT SET TEXT ATTRIBUTES(Area;$Title;$Font;14;1;$Color;1)
 
  `Obtener las dimensiones del área para centrar
 CT GET AREA BOUNDARY(Area;1;$Left;$Top;$Right;$Bottom)
 
  `Redimensionar el gráfico al tamaño de la ventana menos 50 puntos
 CT SIZE(Area;$Chart;$Right-50;$Bottom-50)
 
  `Gráfico centrado
 CT GET BOUNDARY(Area;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Chart;$Locate;$Top2)
 
  `Título centrado
 CT GET BOUNDARY(Area;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Title;$Locate;$Top2)
 
  `Mover el gráfico 9 puntos hacia abajo
 CT GET BOUNDARY(Area;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Area;$Chart;$Left;$Top+9)
 
  `Deseleccionar todos los objetos
 CT SELECT(Area;-1;0)

Imagine que quiere comprar un nuevo carro y utiliza una base de datos para tomar la decisión sobre cual es el mejor carro que puede comprar. Usted redujo la lista a cinco carros y quiere comparar el costo de registro, seguro y mantenimiento anual.

La estructura de su base de datos es la siguiente:

Para analizar la información reunida, usted decide graficar la información en un gráfico de tres dimensiones. Utilizando 4D Chart, produjo el siguiente gráfico:

El método GRAPH CARS se utilizó para crear este gráfico. Este método utiliza el comando CT Chart selection. Los nombres de los campos se convierten en los nombres de las series y los valores en los campos se grafican en el eje Valores. En este ejemplo, los campos Registration, Insurance y Maintenance se utilizaron para las series y valores.

El siguiente es el método GRAPH CARS.

  `Método: GRAPH CARS
  `Categorías: Tipo de carro
  `Series: Tipo de gasto
  `Valores: Costo en dólares
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Area;$Chart;$Title;$Locate;$i)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 
  `Genere la selección de registros a graficar
 ALL RECORDS([Car Expenses])
 ORDER BY([Car Expenses];[Car Expenses]Cost;>)
 
  `Array de campos para datos de series
 ARRAY LONGINT($aFields;3)
 $aFields{1}:=Field(->[Car Expenses]Registration)
 $aFields{2}:=Field(->[Car Expenses]Maintenance)
 $aFields{3}:=Field(->[Car Expenses]Insurance)
 
  `Ocultar elementos de interfaz
 CT SET DISPLAY(Area;1;0) `Ocultar menús
 CT SET DISPLAY(Area;2;0) `Ocultar herramientas gráficas
 CT SET DISPLAY(Area;3;0) `Ocultar herramientas de objetos
 CT SET DISPLAY(Area;6;0) `Ocultar barras de desplazamiento
 CT SET DISPLAY(Area;9;0) `Ocultar reglas
 
  `Crear un gráfico de columnas 3D
 $Chart:=CT Chart selection(Area;100;1;1;Table(->[Car Expenses]);1;$aFields)
 
  `Definir escala
 CT SET REAL SCALE(Area;$Chart;0;0;0;0;0;3000;500;100)
 
  `No mostrar leyenda
 CT SET LEGEND ATTRIBUTES(Area;$Chart;0;0;-1;-1;0;0;0)
 
  `Añadir títulos de gráfico
 CT SET TITLE ATTRIBUTES(Area;$Chart;0;3;0;"Tipo de carro")
 CT SET TITLE ATTRIBUTES(Area;$Chart;1;0;0;"") `no mostrar
 CT SET TITLE ATTRIBUTES(Area;$Chart;2;2;3;"Gasto(en dólares)")
 
  `Añadir un título en la esquina superior izquierda
 $Title:=CT Draw text(Area;1;1;300;3;"Gastos anuales para Sedans")
 
  `Dar formato al título (Palatino, 14 puntos, Negrita, Centrado, Negro)
 $Color:=CT Index to color(16)
 $Font:=CT Font number("Palatino")
 CT SET TEXT ATTRIBUTES(Area;$Title;$Font;14;1;$Color;1)
 
  `Definir color/relleno de primera serie en verde
 $Color:=CT Index to color(10)
 CT SET CHART FILL ATTRIBUTES(Area;$Chart;8;100;3;$Color)
 
  `Definir el color/relleno de la segunda serie en amarillo
 $Color:=CT Index to color(2)
 CT SET CHART FILL ATTRIBUTES(Area;$Chart;8;200;3;$Color)
 
  `Definir el color/relleno de la tercera serie en rojo
 $Color:=CT Index to color(4)
 CT SET CHART FILL ATTRIBUTES(Area;$Chart;8;300;3;$Color)
 
  `Definir los atributos de relleno para todos los rectángulos
 $Color:=CT Index to color(8)
 For($i;1;3)
    CT SET CHART FILL ATTRIBUTES(Area;$Chart;1;$i;5;$Color)
 End for
 
  `Definir los atributos de texto para las etiquetas(Palatino, 9 puntos, itálica negrita)
 $Font:=CT Font number("Palatino")
 For($i;0;2)
    CT SET CHART TEXT ATTRIBUTES(Area;$Chart;4;$i;$Font;9;3;-1)
 End for
 
  `Definir los atributos de texto para títulos(Palatino, 12 puntos, negrita)
 $Font:=CT Font number("Palatino")
 For($i;0;2)
    CT SET CHART TEXT ATTRIBUTES(Area;$Chart;5;$i;$Font;14;1;-1)
 End for
 
  `Obtener las dimensiones del área para centrar
 CT GET AREA BOUNDARY(Area;1;$Left;$Top;$Right;$Bottom)
 
  `Redimensionar el gráfico al tamaño de la ventana menos 50 puntos
 CT SIZE(Area;$Chart;$Right-50;$Bottom-50)
 
  `Centrar gráfico
 CT GET BOUNDARY(Area;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Chart;$Locate;$Top2)
 
  `Centra título
 CT GET BOUNDARY(Area;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Title;$Locate;$Top2)
 
  `Mover el gráfico 9 puntos hacia abajo
 CT GET BOUNDARY(Area;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Area;$Chart;$Left;$Top+9)
 
  `Deseleccionar todos los objetos
 CT SELECT(Area;-1;0)

Imagine que usted es el Director Regional de un programa educativo y usted quiere comparar las pruebas de los estudiantes en cada departamento en su región en diferentes fechas de pruebas.

Su base contiene los resultados de los estudiantes en su región, etiquetados por fecha de la prueba y departamento de residencia.

Utilizando 4D Chart, usted crea el siguiente gráfico:

El gráfico anterior fue creado por el método GRAPH SCORES 2D. El siguiente es el método GRAPH SCORES 2D:

  `Método: GRAPH SCORES 2D
  `Categorías: Fechas de las pruebas
  `Series: Departamentos
  `Valores: Resultados de las pruebas
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 C_LONGINT($Area;$Chart;$Title;$Locate;$Score;$Color;$Font;$Rect)
 
 ALL RECORDS([Test Scores])
 ORDER BY([Test Scores];[Test Scores]Test Date;>)
  `Ocultar los elementos de interfaz
 CT SET DISPLAY(Area;1;0) `Ocultar los menús
 CT SET DISPLAY(Area;2;0) `Ocultar las herramientas gráficas
 CT SET DISPLAY(Area;3;0) `Ocultar los objetos gráficos
 CT SET DISPLAY(Area;6;0) `Ocultar las barras de desplazamiento
 CT SET DISPLAY(Area;9;0) `Ocultar las reglas
 
  `Crear un gráfico en columnas 2D
 $Chart:=CT Chart data(Area;2;1;1;1;Table(->[Test Scores]);2;4;3)
 
  `Transformar un gráfico horizontal
 ARRAY LONGINT($aOptions;4)
 $aOptions{1}:=1 `orientación: horizontal
 $aOptions{2}:=0 `apilado: normal
 $aOptions{3}:=0 `Superpuesto:
 $aOptions{4}:=50 `Intervalo:
 CT SET CHART OPTIONS(Area;$Chart;$aOptions)
 
  `Mostrar los títulos de los ejes
 CT SET TITLE ATTRIBUTES(Area;$Chart;0;2;3;"Fecha de las pruebas")
 CT SET TITLE ATTRIBUTES(Area;$Chart;2;3;0;"Resultado promedio (en puntos)")
 
  `Dar formato al título del eje de categorías (Helvética, Negro, Itálica Negrita, 12 puntos)
 $Color:=CT Index to color(16)
 $Font:=CT Font number("Helvética")
 CT SET CHART TEXT ATTRIBUTES(Area;$Chart;5;0;$Font;12;3;$Color)
 
  `Dar formato al título del eje de Valores (Palatino, Rojo, Itálica negrita, 12 puntos)
 $Color:=CT Index to color(4)
 $Font:=CT Font number("Palatino")
 CT SET CHART TEXT ATTRIBUTES(Area;$Chart;5;2;$Font;12;3;$Color)
 
  `Definir la posición de la leyenda en la parte inferior al centro, orientación horizontal
 CT SET LEGEND ATTRIBUTES(Area;$Chart;1;0;0;0;8;0;0)
 
  `Añadir un título de gráfico en la esquina superior izquierda
 $Title:=CT Draw text(Area;1;1;350;3;"Resultados en función de los departamentos")
 
  `Dar formato al título del gráfico (Geneva, 14 puntos, negrita, Centrado, azul)
 $Color:=CT Index to color(7)
 $Font:=CT Font number("Geneva")
 CT SET TEXT ATTRIBUTES(Area;$Title;$Font;14;1;$Color;1)
 
  `Utilizar escala personalizada
 CT SET REAL SCALE(Area;$Chart;0;0;0;0;0;220;20;5)
  `Obtener las dimensiones de la ventana a utilizar para centrar
 CT GET AREA BOUNDARY(Area;1;$Left;$Top;$Right;$Bottom)
 
  `Redimensionar el gráfico al tamaño de la ventana menos 50 puntos
 CT SIZE(Area;$Chart;$Right-50;$Bottom-50)
 
  `Centrar el gráfico horizontalmente
 CT GET BOUNDARY(Area;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Chart;$Locate;$Top2)
 
  `Centrar el título horizontalmente
 CT GET BOUNDARY(Area;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Title;$Locate;$Top2)
 
  `Mover el gráfico 10 puntos hacia abajo a partir del título
 CT GET BOUNDARY(Area;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Area;$Chart;$Left;$Top+10)
 
  `Enmarcar el gráfico el título con un rectángulo gris
 $Rect:=CT Draw rectangle(Area;$Left-2;$Top2-2;$Right+2;$Bottom+2+10;0)
 CT SET FILL ATTRIBUTES(Area;$Rect;3;CT Index to color(13))
 CT SET LINE ATTRIBUTES(Area;$Rect;3;CT Index to color(15);1)
 
  `Centrar todos los objetos verticalmente
 CT GET AREA BOUNDARY(Area;1;$Left;$Top;$Right;$Bottom)
 CT GET BOUNDARY(Area;-1;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Bottom-$Top)-($Bottom2-$Top2))/2
 CT MOVE(Area;-1;$Left2;$Locate)
 
  `Enviar el rectángulo hacia atrás
 CT SELECT(Area;-1;0) `Deseleccionar todo
 CT SELECT(Area;$Rect;1) `Seleccionar rectángulo
 CT DO COMMAND(Area;24002) `enviar atrás
 CT SELECT(Area;-1;0) `Deseleccionar todo
 
  `Deseleccionar todos los objetos
 CT SELECT(Area;-1;0)

Imagine que usted quiere comparar el rendimiento de las acciones de su empresa con otras de la industria. Usted registra el valor de cierre diario de la acción de cada empresa en una base de datos 4D. En la base de ejemplo, los valores de las acciones se guardan como promedios mensuales.

El siguiente gráfico compara el valor de Joe Bob’s Chemicals con el promedio de la industria. Los datos del gráfico provienen directamente de la base de datos, sin ninguna manipulación.

El método STOCKS CHART genera el gráfico utilizando los valores de los campos tomados directamente de la base. Como los valores almacenados en la base ya son promedios, no necesita realizar cálculos adicionales. Si estuviera grabando valores diarios, necesitaría calcular los promedios mensuales, guardarlos en un array y crear el gráfico utilizando la función CT Chart arrays.

Para consultar un ejemplo del cálculo de valores mensuales promedios, consulte la sección Crear gráficos a partir de arrays (ejemplos) .

El siguiente es el código del método STOCKS CHART:

  `Método: GRAPH STOCKS
  `Categorías: Meses del año
  `Series: Empresa e índice industrial
  `Valores: Precio promedio de la acción
 
 C_LONGINT($Left;$Top;$Right;$Bottom)
 C_LONGINT($Left2;$Top2;$Right2;$Bottom2)
 C_LONGINT($Area;$Chart;$Title;$Locate;$Font;$Color)
 
  `Generar la selección de registros a graficar
 ALL RECORDS([Stock Reports])
 ORDER BY([Stock Reports];[Stock Reports]Month;>)
 
  `Ocultar los elementos de interfaz
 CT SET DISPLAY(Area;1;0) `Ocultar menús
 CT SET DISPLAY(Area;2;0) `Ocultar herramientas gráficas
 CT SET DISPLAY(Area;3;0) `Ocultar herramientas objetos
 CT SET DISPLAY(Area;6;0) `Ocultar barras de desplazamiento
 CT SET DISPLAY(Area;9;0) `Ocultar reglas
 
  `Crear un gráfico lineal 3D
 $Chart:=CT Chart data(Area;101;2;1;1;Table(->[Stock Reports]);2;1;3)
 
  `Definir la escala
 CT SET REAL SCALE(Area;$Chart;0;0;0;0;5;20;5;1)
 
  `Definir la rotación y la elevación del gráfico en 0 grados en ambas direcciones
 CT SET 3D VIEW(Area;$Chart;0;0)
 
  `Definir el color/relleno del rectángulo (gris)
 CT SET CHART FILL ATTRIBUTES(Area;$Chart;1;1;5;CT Index to color(15))
 
  `Definir los colores de las series (Verde, Rojo)
 CT SET CHART FILL ATTRIBUTES(Area;$Chart;8;100;3;CT Index to color(10))
 CT SET CHART FILL ATTRIBUTES(Area;$Chart;8;200;3;CT Index to color(4))
 
  `Definir el color/relleno de las líneas de las series (Verde, Rojo, 4 puntos)
 CT SET CHART LINE ATTRIBUTES(Area;$Chart;8;100;3;CT Index to color(10);4)
 CT SET CHART LINE ATTRIBUTES(Area;$Chart;8;200;3;CT Index to color(4);4)
 
  `Definir los atributos de texto del gráfico (Palatino, itálica negrita, 12 puntos)
 $Font:=CT Font number("Palatino")
 $Color:=CT Index to color(16) `black
 CT SET CHART TEXT ATTRIBUTES(Area;$Chart;5;0;$Font;12;3;$Color)
 $Color:=CT Index to color(10) `verde
 CT SET CHART TEXT ATTRIBUTES(Area;$Chart;5;2;$Font;12;3;$Color)
 
  `Mostrar la etiquetas de los ejes
 CT SET LABEL ATTRIBUTES(Area;$Chart;2;3;0;"$###,##0")
 CT SET LABEL ATTRIBUTES(Area;$Chart;0;3;3;"##/##/##")
 CT SET LABEL ATTRIBUTES(Area;$Chart;1;0;0;"") `Ocultar estas etiquetas
 
  `Añadir títulos a los ejes de categorías y de valores
 CT SET TITLE ATTRIBUTES(Area;$Chart;0;3;0;"Date")
 CT SET TITLE ATTRIBUTES(Area;$Chart;2;2;3;"Average Stock Price")
 
  `Set the legend position to top center, horizontal orientation
 CT SET LEGEND ATTRIBUTES(Area;$Chart;1;0;0;0;7;0;0)
 
  `Añadir un título de gráfico en la esquina superior izquierda
 $Title:=CT Draw text(Area;1;1;350;3;"Company Performance vs Industrial
 Indicator")
 
  `Dar formato al título del gráfico (Palatino, 14 puntos, Negrita, Centrado, Azul)
 $Color:=CT Index to color(7)
 $Font:=CT Font number("Palatino")
 CT SET TEXT ATTRIBUTES(Area;$Title;$Font;14;1;$Color;1)
 
  `Obtener las dimensiones del área para centrar
 CT GET AREA BOUNDARY(Area;1;$Left;$Top;$Right;$Bottom)
 
  `Redimensionar el gráfico al tamaño de la ventana menos 50 puntos
 CT SIZE(Area;$Chart;$Right-50;$Bottom-50)
 
  `Centrar el gráfico
 CT GET BOUNDARY(Area;$Chart;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Chart;$Locate;$Top2)
 
  `Centrar el título
 CT GET BOUNDARY(Area;$Title;$Left2;$Top2;$Right2;$Bottom2)
 $Locate:=(($Right-$Left)-($Right2-$Left2))/2
 CT MOVE(Area;$Title;$Locate;$Top2)
 
  `Mover el gráfico 10 puntos hacia abajo
 CT GET BOUNDARY(Area;$Chart;$Left;$Top;$Right;$Bottom)
 CT MOVE(Area;$Chart;$Left;$Top+10)
 
  `Deseleccionar todos los objetos
 CT SELECT(Area;-1;0)

 
PROPIEDADES 

Producto: 4D Chart
Tema: Introducción al lenguaje

 
VER TAMBIÉN 

Crear gráficos a partir de arrays (ejemplos)